home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / SCHEME / VSCM / doc / README < prev   
Text File  |  1994-08-05  |  3KB  |  98 lines

  1.  
  2. -- see INSTALL for instructions on how to build VSCM
  3. -- see DESCRIPTION for a desription of the non-R4RS features and for a
  4.    list of changes made since September 29, 1993
  5.  
  6. ______________________________________________________________________________
  7.  
  8.  
  9. VSCM -- A portable Scheme implementation
  10.  
  11. Author: Matthias Blume
  12.         Princeton University
  13.     Department of Computer Science
  14.     35 Olden Street
  15.     Princeton, NJ 08544, U.S.A.
  16.  
  17.     e-mail: blume@cs.princeton.edu
  18.  
  19. This is VSCM, a complete and portable implementation of Scheme
  20. according to R4RS (The ``Revised revised revised revised Report of the
  21. Algorithmic Language Scheme'').
  22.  
  23. VSCM is based on a virtual machine written in ANSI C and on a
  24. bytecode-compiler written in Scheme itself.
  25.  
  26. This version of VSCM is distinguished from its predecessor (VSCM I) by the
  27. following properties:
  28.  
  29.     * All essential and non-essential features mentioned in R4RS plus
  30.       some important extras are provided.
  31.     * VSCM is now based on a somewhat more flexible virtual machine
  32.       which allows more compiler optimizations.
  33.     * The compiler now uses a flat closure representation.  (The previous
  34.       implementation was restricted to linked closures.)
  35.     * VSCM now offers the complete tower of numeric types as proposed in
  36.       R4RS (integer, rational, real and complex).  The numeric code
  37.       has been completely redesigned.
  38.     * Execution is 20-40% faster on average programs.  For certain
  39.       cases improvements of more than 50% could be observed.
  40.     * The implementation is cleaned up in several ways.
  41.  
  42. Non-standard features include:
  43.  
  44.     * (executable) protable memory images
  45.     * error handling
  46.     * interrupt handling
  47.     * coroutines
  48.     * timer interrupts
  49.     * generic ports
  50.     * continuations with multiple arguments (will be in R5RS)
  51.     * interfaces to runtime system, garbage collector,
  52.       operating system
  53.  
  54. For a more complete list and description see file DESCRIPTION.
  55.  
  56. This version of VSCM is based on its first implementation that has
  57. been developed in part while the author was working at the department
  58. of Computer Science, Humboldt-University of Berlin, Germany.  The most
  59. recent version of the first implementation can be obtained via
  60. anonymous ftp from ``nexus.yorku.ca:/pub/scheme/imp/vscm93Feb10.tar.Z''.
  61.  
  62. ______________
  63.  
  64.  
  65. Remarks:
  66.  
  67. Even though VSCM implements integral, rational, real and complex
  68. numeric types and distinguishes between exact and inexact numbers you
  69. can find ``holes'' in the type system: there are no non-integral
  70. inexact fractions and no exact non-integral real or complex numbers.
  71. Inexact fractions are converted to real numbers.  Usually there is no
  72. problem with this.  However, the results of ``rationalize'' can be
  73. surprising.
  74.     ``rationalize'' must return an inexact fraction if called with
  75. real numbers, because real numbers are always inexact.  But since we
  76. don't have inexact fractions we get another real number instead.  To
  77. get the expected result you will need to call:
  78.  
  79.     (rationalize (inexact->exact <x>) (inexact->exact <y>))
  80.  
  81. I'm indebted to Alan Bawden for allowing me to use his version of
  82. ``rationalize''.
  83.  
  84. VSCM still lacks a real implementation of ``char-ready?''.  This is
  85. due to the fact that ANSI C does not allow to implement it in a
  86. portable machine- and operating system-independent way.
  87.  
  88. ______________
  89.  
  90.  
  91. I also want to thank Henry Cejtin for numerous suggestions and Greg Wilson
  92. for pushing me to include the coroutine interface.
  93.  
  94.  
  95. Princeton, March 23, 1993
  96.        September 29, 1993
  97.        November 18, 1993
  98.